package CapaLogica;

import java.util.ArrayList;


//  @ Project : PrGaleriaAmejia_Drivera
//  @ File Name : Galeria.java
//  @ Date : 01/04/2012
//  @ Author : Amejia_Drivera


public class Galeria {
    //Atributos propios
    private String nombre;
    private String direccion;
    private String telefono;
    private String fechaInaguracon;
    private String nombreEncargado;
    private String dimension;
    //Atributos de relacion
    private ArrayList<Adquisicion> posesiones;

    
    //Constructor(es)

    public Galeria(String pnombre, String pdireccion, String ptelefono, String pfechaInaguracon,String pdimension,
            String pnombreEncargado) {
        setNombre(pnombre);
        setDireccion(pdireccion);
        setTelefono(ptelefono);
        setFechaInaguracon(pfechaInaguracon);
        setDimension(pdimension);
        setNombreEncargado(pnombreEncargado);
    }
    

    
    //Acceso a la clase
    public String getDimension() {
        return dimension;
    }

    public void setDimension(String dimension) {
        this.dimension = dimension;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

   public String getFechaInaguracon() {
        return fechaInaguracon;
    }

    public void setFechaInaguracon(String fechaInaguracon) {
        this.fechaInaguracon = fechaInaguracon;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getNombreEncargado() {
        return nombreEncargado;
    }

    public void setNombreEncargado(String nombreEncargado) {
        this.nombreEncargado = nombreEncargado;
    }

    public ArrayList<Adquisicion> getPosesiones() throws Exception {
        if(posesiones==null){
            setPosesiones(new MultiAdquisicion().buscarPorGaleria(getNombre()));
        }
        return posesiones;
    }
    
   public ArrayList<Adquisicion> getPosesionesPorFechas(String pfechaDe,String pfechaHasta) throws Exception {
        if(posesiones==null){
            setPosesiones(new MultiAdquisicion().buscarPorGaleriaFechas(getNombre(),pfechaDe,pfechaHasta));
        }
        return posesiones;
    }

    public void setPosesiones(ArrayList<Adquisicion> posesiones) {
        this.posesiones = posesiones;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }
    
    //Metodos

    public String toString(){
        String result="Nombre: "+getNombre()+"\n"
                        +"Direccion: "+getDireccion()+"\n"
                        +"Telefono: "+getTelefono()+"\n"
                        +"Fecha inaguracion: "+getFechaInaguracon()+"\n"
                        +"Nombre encargado: "+getNombreEncargado()+"\n"
                        +"Dimension: "+getDimension()+"\n";
        return result;
    }
    
   public Obra registrarObra(String pcodigo,String pnombre,String pdimens,String pfechaReali
                ,String pduracionDesa, String ptecnica, String pestado, boolean pindFama,
                String desHisto,int pid_artista,String pfechaAdquisicion, 
                String pcostoAdquisicion,String pnombGal) throws Exception{
        
        Obra objObra=null;
        objObra = new MultiObra().crear(pcodigo, pnombre,pdimens,pfechaReali,pduracionDesa,ptecnica,pestado,pindFama,desHisto,pid_artista);
        
        if(objObra!=null){
            registrarAdquisicion(pcodigo,pnombGal, pestado, pcostoAdquisicion, pfechaAdquisicion);
        }
        
        return objObra;
    }
    
  private  boolean registrarAdquisicion(String pcodObra,String pnomGal,String pcondicion,String pcosto,String pfec_adqu) throws Exception{
        Adquisicion objAdquisicion = new MultiAdquisicion().crear(pcodObra, pnomGal, pcondicion, pcosto, pfec_adqu);
        return objAdquisicion!=null;
    }
  
  
  private void eliminarAdquisicion(String pcodObra) throws Exception {
        Adquisicion objAdquisicion;
        objAdquisicion = new MultiAdquisicion().buscarPorCodigoObra(pcodObra);
        new MultiAdquisicion().borrar(objAdquisicion);
    }
    
    
}
